// 给你两个字符串,要你把字符串的数字提取出来转化成数字并相加
// 这件事情可以使用cpp的stl库的string很容易的实现
// 我们只需要使用模拟加法就可以解决这道题目

class Solution {
public:
    string addStrings(string num1, string num2) 
    {

        int l1 = num1.length () - 1 , l2 = num2.length () - 1 , cun = 0 ; // 声明两个下标分别指向字符串的num1和字符串的num2,模拟从个位数开始的加法,另外再声明一个变量用于保存加法里面出现的进位

        string ret = "" ; // 创建一个字符串,用于保存结果

        while (l1 >= 0 || l2 >= 0 || cun != 0)
        {

            // 分别读取两个字符串相应位置上面的字符并转换,并且使用三目操作符考虑到了如果以及读取完了任意字符串的数据的情况

            int x = l1 >= 0 ? num1 [l1] - '0' : 0 ; 

            int y = l2 >= 0 ? num2 [l2] - '0' : 0 ;

            // 当前数连带着前面的进位数相加

            int sum = x + y + cun ;

            ret.push_back ('0' + (sum % 10)) ; // 将当前的位结果转换之后尾插进字符串中,进位留着后面再加使用

            cun = sum / 10 ;

            l1-- ;

            l2-- ;

        }

        reverse (ret.begin () , ret.end ()) ; // 最后反转数组即可得出结果

        return ret ;
        
    }

};